package br.ufu.wcm.controller;

import java.util.List;

import br.com.caelum.vraptor.Get;
import br.com.caelum.vraptor.Path;
import br.com.caelum.vraptor.Post;
import br.com.caelum.vraptor.Put;
import br.com.caelum.vraptor.Resource;
import br.com.caelum.vraptor.Result;
import br.ufu.wcm.dao.ProdutoDao;
import br.ufu.wcm.model.Produto;

@Resource
public class ProdutoController {

	private ProdutoDao produtoDao;
	private Result result;
	
	public ProdutoController(ProdutoDao produtoDao, Result result) {
		this.produtoDao = produtoDao;
		this.result = result; 
	}
	
	public void formulario() {
	}
	
	public List<Produto> pesquisa(Produto produto) {
		return produtoDao.buscarPorExemplo(produto);
	}
	
	@Get @Path("/produto")
	public List<Produto> lista() {
		return produtoDao.buscarTodos();
	}
	
	@Path("/produto/atualiza/{produto.codigo}")
	public void atualiza(Produto produto) {
		Produto produtoBanco = produtoDao.get(produto.getCodigo());
		result.include("produto", produtoBanco);
		result.redirectTo(ProdutoController.class).formulario();
	}
	
	@Post("/produto")
	public void salvar(Produto produto) {
		produtoDao.salvar(produto);
		result.redirectTo(ProdutoController.class).lista();
	}
	
	@Put("/produto")
	public void atualizar(Produto produto) {
		produtoDao.atualizar(produto);
		result.redirectTo(ProdutoController.class).lista();
	}
	
	@Path("/produto/remove/{produto.codigo}")
	public void remover(Produto produto) {
		produtoDao.remover(produto);
		result.redirectTo(ProdutoController.class).lista();
	}
	
}
